home *** CD-ROM | disk | FTP | other *** search
- ; initialization file for XLISP 1.7
- ; ccl (1/29/87),(3/2/87),(3/19/87)
- ; get some more memory
- (princ "XLISP initialization")
- (terpri)
- (expand 6)
- ;(princ "\16[?7h")
- (setq __file "noname.lsp")
- (princ "define: ");
- (princ "save, ")
- ; (save fun) - save a function definition to a file
- (defmacro save (fun)
- `(let* ((fname (strcat (symbol-name ',fun) ".lsp"))
- (fval (car ,fun))
- (fp (openo fname)))
- (cond (fp (print (cons (if (eq (car fval) 'lambda)
- 'defun
- 'defmacro)
- (cons ',fun (cdr fval))) fp)
- (close fp)
- fname)
- (t nil))))
-
- (princ "ed, ")
-
- ; define edit function to edit program loaded with 'ld'
- ; resets wrap around on since sedt leaves it off
-
- (defun ed ()
- (dos (strcat "SEDT " __file ".lsp"))
- ; (princ "\16[?7h")
- (load __file))
-
- (princ "ld, ")
-
- ; define load function to save file name and load file
-
- (defun ld (fn)
- (setq __file fn)
- ; (princ "\16[?7h")
- (load fn)
- )
-
- ; define edit function to edit a file (no .LSP appended) and NOT reload it
- (defun edit (fn)
- (dos (strcat "SEDT " fn)))
-
- (princ "break, ")
- (defun break ()
- (setq *breakenable* t))
-
- (princ "nobreak, ")
- (defun nobreak ()
- (setq *breakenable* nil))
-
- (princ "debug, ")
- (defun debug ()
- (setq *tracenable* t)
- )
-
- (princ "nodebug, ")
- (defun nodebug ()
- (setq *tracenable* nil)
- )
-
- ; define functions to allow trace/untrace of functions
- ; original by dave wecker
-
- (defun evalhookfcn (expr env &aux val)
- (if (and (consp expr) (member (car expr) *tracelist*))
- (progn (dotimes (a *tracedepth*) (princ "-"))
- (princ ">> ")
- (princ expr)
- (princ " ")
- (if (consp env) (princ env))
- (terpri)
- (setq *tracedepth* (1+ *tracedepth*))
- (setq val (evalhook expr evalhookfcn nil env))
- (setq *tracedepth* (1- *tracedepth*))
- (dotimes (a *tracedepth*) (princ "-"))
- (princ "<< ") (print val))
- (evalhook expr evalhookfcn nil env)))
-
- (princ "trace, ")
- (defun trace (fun)
- (setq *evalhook* evalhookfcn)
- (if (not (member fun *tracelist*))
- (setq *tracelist* (cons fun *tracelist*)))
- *tracelist*)
-
- (princ "notrace")
- (defun notrace (fun)
- (if (null (setq *tracelist* (delete fun *tracelist*)))
- (setq *evalhook* nil))
- *tracelist*)
-
- ; initialize debug symbols
-
- (setq *breakenable* t) ; allow breaks
- (setq *tracenable* nil) ; no traceback info
- (setq *tracelist* nil) ; no function trace
- (setq *tracedepth* 0) ; no function trace
- (terpri)
- (terpri)
-